package com.example.administrator.basedemos.sbdemo;

import com.example.administrator.basedemos.utils.LogUtil;

import java.util.ArrayList;

/**
 * 创建者     ZCL
 * 创建时间   2018/3/16 15:30
 * 描述	      ${被观察者 抽象主体}
 * <p>
 * 更新者     $Author$
 * 更新时间   $Date$
 * 更新描述   ${TODO}
 */

public  abstract  class   Subject {
    private static final String TAG = "Subject";
    ArrayList<Observer> list = new ArrayList<>();

    /**
     * 添加兵种
     * @param observable
     */
    public  void addObservable(Observer observable){
        LogUtil.util(TAG,"添加兵种:");
        list.add(observable);
    }

    /**
     * 解除兵种
     * @param observable
     */
    public  void deteObservable(Observer observable){
        LogUtil.util(TAG,"解除兵种:");
        list.remove(observable);
    }

    /**
     * 发布军令
     * @param state
     */
    public void notifyChanged(Object state){
        for (Observer observer:list) {
            observer.upData(state);
        }
    }


}
